Telegram Group & Telegram Channel
Как защититься от SQL-инъекций без prepared statements?

🔐 Альтернативные способы защиты от SQL-инъекций без prepared statements

1. Экранирование пользовательского ввода
Для MySQL можно использовать функцию mysqli_real_escape_string(), которая экранирует специальные символы в строке, делая её безопасной для использования в SQL-запросах.​

$login = mysqli_real_escape_string($conn, $_POST['login']);$query = «SELECT * FROM users WHERE login = '$login'»;


Однако этот метод не защищает от всех видов атак и может быть недостаточно эффективным, особенно если не учитывать кодировку и типы данных.​

2. Приведение типов и валидация данных
Если ожидается, что пользовательский ввод должен быть определённого типа (например, целое число), следует явно приводить его к этому типу и проверять допустимость значения.​


$id = (int)$_GET['id'];$query = «SELECT * FROM products WHERE id = $id»;



Это предотвращает внедрение вредоносного кода через параметры, ожидающие числовые значения.​

3. Белые списки допустимых значений
Для параметров, которые могут принимать ограниченный набор значений (например, порядок сортировки), следует использовать белые списки и проверять, что введённое значение входит в допустимый набор.​



$order = $_GET['order'];if (!in_array($order, ['ASC', 'DESC'])) {$order = 'ASC';}$query = «SELECT * FROM products ORDER BY price $order»;



Это предотвращает возможность внедрения произвольного SQL-кода через параметры.​
4. Использование хранимых процедур

Хранимые процедуры, определённые на стороне базы данных, могут помочь изолировать SQL-логику от пользовательского ввода. Однако они также могут быть уязвимы, если параметры не обрабатываются должным образом.​

⚠️ Почему эти методы менее надёжны

🔸 Экранирование и валидация требуют тщательной реализации и могут быть легко нарушены при изменении кода.​

🔸 Ошибки в логике проверки или упущенные случаи могут открыть путь для атак.​

🔸 Эти методы не обеспечивают такой же уровень защиты, как подготовленные выражения, особенно при работе с различными типами данных и кодировками.



tg-me.com/php_interview_lib/765
Create:
Last Update:

Как защититься от SQL-инъекций без prepared statements?

🔐 Альтернативные способы защиты от SQL-инъекций без prepared statements

1. Экранирование пользовательского ввода
Для MySQL можно использовать функцию mysqli_real_escape_string(), которая экранирует специальные символы в строке, делая её безопасной для использования в SQL-запросах.​

$login = mysqli_real_escape_string($conn, $_POST['login']);$query = «SELECT * FROM users WHERE login = '$login'»;


Однако этот метод не защищает от всех видов атак и может быть недостаточно эффективным, особенно если не учитывать кодировку и типы данных.​

2. Приведение типов и валидация данных
Если ожидается, что пользовательский ввод должен быть определённого типа (например, целое число), следует явно приводить его к этому типу и проверять допустимость значения.​


$id = (int)$_GET['id'];$query = «SELECT * FROM products WHERE id = $id»;



Это предотвращает внедрение вредоносного кода через параметры, ожидающие числовые значения.​

3. Белые списки допустимых значений
Для параметров, которые могут принимать ограниченный набор значений (например, порядок сортировки), следует использовать белые списки и проверять, что введённое значение входит в допустимый набор.​



$order = $_GET['order'];if (!in_array($order, ['ASC', 'DESC'])) {$order = 'ASC';}$query = «SELECT * FROM products ORDER BY price $order»;



Это предотвращает возможность внедрения произвольного SQL-кода через параметры.​
4. Использование хранимых процедур

Хранимые процедуры, определённые на стороне базы данных, могут помочь изолировать SQL-логику от пользовательского ввода. Однако они также могут быть уязвимы, если параметры не обрабатываются должным образом.​

⚠️ Почему эти методы менее надёжны

🔸 Экранирование и валидация требуют тщательной реализации и могут быть легко нарушены при изменении кода.​

🔸 Ошибки в логике проверки или упущенные случаи могут открыть путь для атак.​

🔸 Эти методы не обеспечивают такой же уровень защиты, как подготовленные выражения, особенно при работе с различными типами данных и кодировками.

BY Библиотека собеса по PHP | вопросы с собеседований


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/php_interview_lib/765

View MORE
Open in Telegram


Библиотека собеса по PHP | вопросы с собеседований Telegram | DID YOU KNOW?

Date: |

Newly uncovered hack campaign in Telegram

The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.

Telegram Auto-Delete Messages in Any Chat

Some messages aren’t supposed to last forever. There are some Telegram groups and conversations where it’s best if messages are automatically deleted in a day or a week. Here’s how to auto-delete messages in any Telegram chat. You can enable the auto-delete feature on a per-chat basis. It works for both one-on-one conversations and group chats. Previously, you needed to use the Secret Chat feature to automatically delete messages after a set time. At the time of writing, you can choose to automatically delete messages after a day or a week. Telegram starts the timer once they are sent, not after they are read. This won’t affect the messages that were sent before enabling the feature.

Библиотека собеса по PHP | вопросы с собеседований from nl


Telegram Библиотека собеса по PHP | вопросы с собеседований
FROM USA